package main

import (
	"fmt"
	"log"
	"time"

	"github.com/tebeka/selenium"
)

// demo1 访问google.com，并执行搜索
func demo1(wd selenium.WebDriver, err error) {
	fmt.Println("正在从Google搜索，并获取内容")
	const keyWord = "Go programming language"

	// 打开一个网页
	if err := wd.Get("https://www.google.com"); err != nil {
		log.Fatalf("打开网页失败: %v", err)
	}

	// 使用Xpath定位元素，定位输入框（通过Xpath过滤）
	inputElem, err := wd.FindElement(selenium.ByXPATH, "//*[@id=\"APjFqb\"]")
	if err != nil {
		log.Fatalf("查询Elem失败: %v", err)
	}

	// 输入搜索关键字
	if err := inputElem.SendKeys(keyWord); err != nil {
		log.Fatalf("输入失败: %v", err)
	}

	// 点击搜索按钮
	if btnElem, err := wd.FindElement(selenium.ByXPATH, "/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]"); err != nil {
		log.Fatalf("查询Elem失败: %v", err)
	} else {
		err := btnElem.Click()
		if err != nil {
			log.Fatalf("查询Elem失败: %v", err)
		}
		time.Sleep(2 * time.Second)
	}

	// 获取搜索结果（通过CSS选择器过滤）
	if searchResultElems, err := wd.FindElements(selenium.ByCSSSelector, ".MjjYud"); err != nil {
		log.Fatalf("查询Elem失败: %v", err)
	} else {
		for _, elem := range searchResultElems {
			var title string
			titleElem, err_ := elem.FindElement(selenium.ByCSSSelector, ".LC20lb")
			if err_ == nil {
				title, _ = titleElem.Text()
			}
			if title != "" {
				fmt.Println("title: ", title)
			}
		}
	}
}
